終於到了這一刻了,前十天的基礎如果各位都有做好,那麼接下來的部分就可以很快速的上手拉
接下來,你需要為專案建立一個專屬的資料夾:
mkdir line-bot
cd line-bot
使用 pipenv
建立虛擬環境。這會為你的專案創建一個隔離的環境,確保套件之間不會互相干擾:
pipenv shell
在虛擬環境中,你需要安裝 LINE Bot 的 Python SDK 和 Flask(一個輕量級的Web框架,通常用於處理Bot的Webhook)。輸入以下命令來安裝:
pip install line-bot-sdk
pip install Flask
line-bot-sdk
是LINE提供的官方套件,而 Flask
則讓我們能夠處理 HTTP 請求,這在Bot的Webhook處理過程中是必須的。
在專案資料夾內,建立一個名為 app.py
的檔案,並撰寫以下範例程式碼:
from flask import Flask, request, abort
from linebot.v3 import (
WebhookHandler
)
from linebot.v3.exceptions import (
InvalidSignatureError
)
from linebot.v3.messaging import (
Configuration,
ApiClient,
MessagingApi,
ReplyMessageRequest,
TextMessage
)
from linebot.v3.webhooks import (
MessageEvent,
TextMessageContent
app = Flask(__name__)
# 你的 LINE Bot 設定
LINE_CHANNEL_ACCESS_TOKEN = '你的Channel Access Token'
LINE_CHANNEL_SECRET = '你的Channel Secret'
line_bot_api = LineBotApi(LINE_CHANNEL_ACCESS_TOKEN)
handler = WebhookHandler(LINE_CHANNEL_SECRET)
@app.route("/callback", methods=['POST'])
def callback():
# 確認請求來自LINE平台
signature = request.headers['X-Line-Signature']
# 取得請求內容
body = request.get_data(as_text=True)
try:
handler.handle(body, signature)
except InvalidSignatureError:
abort(400)
return 'OK'
@handler.add(MessageEvent, message=TextMessage)
def handle_message(event):
line_bot_api.reply_message(
event.reply_token,
TextSendMessage(text=event.message.text))
if __name__ == "__main__":
app.run()
為了保護敏感的資料(如LINE_CHANNEL_ACCESS_TOKEN
和LINE_CHANNEL_SECRET
),你可以將這些資料儲存在環境變數中。
在專案根目錄建立一個 .env
檔案,並將你的Token與Secret寫入其中:
LINE_CHANNEL_ACCESS_TOKEN=你的Channel Access Token
LINE_CHANNEL_SECRET=你的Channel Secret
接著,在 app.py
中使用 os
模組來讀取環境變數:
import os
line_bot_api = LineBotApi(os.getenv('LINE_CHANNEL_ACCESS_TOKEN'))
handler = WebhookHandler(os.getenv('LINE_CHANNEL_SECRET'))
最後,啟動 Flask 伺服器來測試你的LINE Bot:
python app.py
至此,你已經建立了一個基本的LINE Bot開發環境,並能夠使用 pipenv
管理Python虛擬環境。你可以依照需求進一步擴展這個Bot的功能,例如處理不同類型的訊息,或與外部API進行互動。
明天我們就來講講如何取得LINE BOT的API_KEY等等